<!doctype html>
<meta charset=utf-8>
<title>Node.appendChild: inserting script and button from a div</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<form id="form"></form>
<script>
let button = null;
let buttonForm = null;
test(() => {
  const form = document.getElementById("form");
  const script = document.createElement("script");
  script.textContent = `
    buttonForm = button.form;
  `;
  button = document.createElement("button");
  const div = document.createElement("div");
  div.appendChild(script);
  div.appendChild(button);
  assert_equals(buttonForm, null);
  form.appendChild(div);
  assert_equals(buttonForm, form);
}, "Script inserted before a form-associated button can observe the button's " +
   "form, because by the time the script executes, the DOM insertion that " +
   "associates the button with the form is already done");
</script>
